home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / doc.exe / MENGEN.DOC < prev    next >
Text File  |  1992-02-12  |  6KB  |  184 lines

  1.   ─────────────────────────────────────────────────────────────────────────────
  2.   Dokumentation zur Datei: MENGEN.INC
  3.  
  4.   ─────────────────────────────────────────────────────────────────────────────
  5.    
  6.     MENGEN.INC   - Routinen zur Arbeit mit Mengen
  7.                    (für den Assembler A86)
  8.    
  9.                    (c) Bernd Schemmer 1990 - 1992
  10.                    Letzter Update: 12.02.1992
  11.    
  12.     ■ Beschreibung:
  13.     ---------------
  14.     Eine Menge ist gegeben durch einen Array von 16 Worten.
  15.     Jedes Mengen-Element wird durch ein Bit dargestellt, d.h. eine Menge
  16.     kann maximal 256 Elemente á einem Byte enthalten (16 Worte = 256 Bit).
  17.     Ein gesetztes Bit bedeutet, daß das Element vorhanden ist; ein nicht
  18.     gesetztes Bit signalisiert das Nichtvorhandensein eines Elementes.
  19.     Die Zuordnung zwischen Bit-Nummer und Mengen-Element muß implizit
  20.     (z.B. bei Buchstaben ist die zugehörige Bit-Nummer jeweils der ASCII-
  21.      code) oder explizit im Programm (z.B. bei Mengen wie 'Apfel, Birne,
  22.     Pflaume, etc' = Obst) durchgeführt werden.
  23.     Jedes Element kann in einer Menge entweder vorhanden sein oder nicht.
  24.     Die Anzahl eines Elementes in einer Menge ist also nicht speicher-
  25.     bzw. ermittelbar.
  26.    
  27.     Alle Routinen benutzen das Register AX als Arbeitsregister.
  28.    
  29.    
  30.     ■ Variablen:
  31.     ------------
  32.     Menge_Der_Grossbuchstaben  - Menge
  33.     Menge_Der_KleinBuchstaben  - Menge
  34.     Menge_Der_Buchstaben       - Menge
  35.    
  36.    
  37.     ■ Routinen:
  38.     -----------
  39.     Bilde_Menge           - Erstellt eine Menge
  40.     Subb_ELement          - Löscht ein Element aus einer Menge
  41.     Add_Element           - Fügt einer Menge ein neues Element zu
  42.     Element_Vorhanden?    - Überprüft, ob ein Element vorhanden ist
  43.     Card_Menge            - Ermittelt die Anzahl der Elemente in einer
  44.                             Menge
  45.     XOR_Mengen            - VerXORt zwei Mengen, d.h. bildet die Menge
  46.                             aller Elemente die entweder in der ersten
  47.                             Menge oder in der zweiten Menge aber nicht
  48.                             in beiden Mengen vorkommen
  49.     Schneide_Mengen       - Bildet die Schnittmenge zweier Mengen
  50.     Kopiere_Menge         - Kopiert eine Menge in eine andere Menge
  51.     Loesche_Menge         - Löscht eine Menge
  52.     Vereinige_Mengen      - Bildet die Vereinigungsmenge zweier Mengen
  53.     Negiere_Menge         - Bildet die Komplement-Menge zu einer Menge
  54.                             d.h. die Menge aller Elemente die nicht in
  55.                             der Menge enthalten sind
  56.    
  57.    
  58.     ----------------------------
  59.     DefiniereMenge
  60.    
  61.     Funktion:   Macro zum definieren einer Menge mit dem namen #1 als
  62.                 leere Menge
  63.    
  64.     Aufruf:     DefiniereMenge NameDerMenge
  65.    
  66.    
  67.     ----------------------------
  68.     Bilde_Menge
  69.    
  70.     Funktion:  Aufbau einer Menge
  71.    
  72.     Eingabe:   DS:BX -> Menge
  73.                ES:DI -> Byte-Array mit den Mengen-Elementen
  74.                CL    =  Anzahl der Mengen-Elemente
  75.    
  76.     Ausgabe:   Die Menge bei DS:BX wurde eingerichtet.
  77.    
  78.     Bes.:      Falls CL gleich 0 ist, wird eine leere Menge erstellt.
  79.    
  80.     ----------------------------
  81.     Element_Vorhanden?
  82.    
  83.     Funktion:  Feststellen, ob das Element mit der Nummer aus AL in
  84.                einer Menge vorhanden ist
  85.    
  86.     Eingabe:   AL = Nummer des Elements
  87.                DS:BX -> Menge
  88.    
  89.     Ausgabe:   ZF = 0 ->> Element enthalten
  90.                ZF = 1 ->> Element nicht enthalten
  91.    
  92.     ----------------------------
  93.     Add_Element
  94.    
  95.     Funktion:  Hinzufügen des Elementes mit der Nummer aus AL zu
  96.                eine Menge
  97.    
  98.     Eingabe:   AL = Nummer des Elementes
  99.                DS:BX -> Menge
  100.    
  101.    -----------------------------
  102.     Subb_Element
  103.    
  104.     Funktion:  Entfernen des Elementes mit der Nummer aus AL aus
  105.                einer Menge
  106.    
  107.     Eingabe:   AL = Nummer des Elementes
  108.                DS:BX -> Menge
  109.    
  110.     ----------------------------
  111.     Loesche_Menge
  112.    
  113.     Funktion:  Löschen einer Menge
  114.    
  115.     Eingabe:   DS:BX -> zu löschende Menge
  116.    
  117.     ----------------------------
  118.     Kopiere_Menge
  119.    
  120.     Funktion:  Kopiert eine Menge in eine andere Menge
  121.    
  122.     Eingabe:   DS:BX -> Quellmenge
  123.                ES:DI -> Zielmenge
  124.    
  125.     Ausgabe:   Die Menge bei ES:DI entspricht der Menge
  126.                bei DS:SI
  127.    
  128.     ----------------------------
  129.     Card_Menge
  130.    
  131.     Funktion:  Ermittle die Anzahl der Elemente einer Menge
  132.    
  133.     Eingabe:   DS:BX -> Menge
  134.    
  135.     Ausgabe:   AL = Anzahl der Elemente
  136.    
  137.     ----------------------------
  138.     Negiere_Menge
  139.    
  140.     Funktion:  Bilde die Menge aller nicht in der Quellmenge
  141.                vorkommenden Elemente
  142.    
  143.     Eingabe:   DS:BX -> Quellmenge
  144.                ES:DI -> Zielmenge
  145.    
  146.     Ausgabe:   Die Menge bei ES:DI ist die Menge mit allen
  147.                Elementen die nicht in der Quellmenge enthalten sind
  148.    
  149.     ----------------------------
  150.     Vereinige_Mengen
  151.    
  152.     Funktion:  Bilde die Vereinigungs-Menge zweier Mengen (OR)
  153.    
  154.     Eingabe:   DS:BX -> Menge1
  155.                ES:DI -> Menge2
  156.    
  157.     Ausgabe:   Die Menge bei ES:DI ist die Vereinigungs-Menge
  158.                der beiden Mengen
  159.    
  160.     ----------------------------
  161.     Schneide_Mengen
  162.    
  163.     Funktion:  Bilde die Schnittmenge zweier Mengen (AND)
  164.    
  165.     Eingabe:   DS:BX -> Menge1
  166.                ES:DI -> Menge2
  167.    
  168.     Ausgabe:   Die Menge bei ES:DI ist die Schnittmenge der
  169.                beiden Mengen
  170.    
  171.     ----------------------------
  172.     XOR_Mengen
  173.    
  174.     Funktion:  Ermittle die Menge aller Elemente die
  175.                nur in Menge1 oder nur in Menge2 vor-
  176.                kommen
  177.    
  178.     Eingabe:   DS:BX -> Menge1
  179.                ES:DI -> Menge2
  180.    
  181.     Ausgabe:   Die Menge bei ES:DI ist die exklusiv veroderte
  182.                Menge der beiden Mengen
  183.    
  184.